HOW TO CREATE A FREEDOS DISTRIBUTION (MINI-HOWTO) by Jim Hall (jhall1@isd.net) -------------------------------------------------------------------- This is how I (currently) build a FreeDOS distribution. I am writing this down now so that others can learn how it is done in case someone else wants to create their own FreeDOS distribution. I do not have a problem with someone creating a "better" or "competing" FreeDOS distribution. That's what free software is all about. -------------------------------------------------------------------- TO CREATE THE BETA 2 DISTRIBUTION: This is a little different from how I created the Beta 1 distribution. With the Beta 1, I didn't use rph files, so the package description went into disk description files, and I didn't have other information like maintainer and official program url. (1) Print out a list of all the FreeDOS programs that are part of the FreeDOS distribution. I have made this available at www.isd.net/jhall1/freedos/fdmain.html, fdext.html, and fdlang.html. You will use this list to keep track of what you download and have added to the distribution as packages. (2) Go through the list and download every single program (both exe and source). As you download a program, check it off on the list. I usually make two columns of check marks: the "download" column would be column 1. Since the Beta 2 distribution is the first to use rph files, I needed to download everything because I was not always sure if a program has been updated since the Beta 1 distribution. (3) After you have downloaded the programs, turn them into zip files. I do this under UNIX, because I have all the tools I need and because I can take advantage of a better file caching system. Some people (notably the Command.com group) will distribute their programs and source as install program packages. This is great, but most people will distribute their programs as a zip file containing both exe and source. So what I do there is to create a SOURCE\{program} directory, and unzip it there. Anything that is an exe I move into a BIN\ directory. If it's a Help page, I copy it to a HELP\ directory. If it's useful documentation, I may copy it to a DOC\{program} directory. Then, I make a package zip file of the BIN, HELP, and DOC directories, and a package zip file of the SOURCE directories. (4) Make sure all the package zip files have an 8.3 name, and that the exe packages end with "x.zip" and the source packages end with "s.zip". It is usually a good idea to include the version number in the name, too, although this is sometimes tricky using 8.3 names. For example, for version 1.1 of the FOO program, you might have an exe package of "FOO11X.ZIP" and a source package of "FOO11S.ZIP". However, for version 1.6G of Freemacs, you may need to shorten this to "EMAC16GX.ZIP" and "EMAC16GS.ZIP". (5) Make sure all the package zip files in all the disk series have unique 8.3 names. This is so someone can put all the disks series into a single hard drive directory and install from there. (6) Write your rph files based on the package information. For this, I usually do a "view source" on the maintainers lists so I can cut-and-paste the source url. You should probably include the author email, too, instead of just the name. (7) Divide up your packages and rph files for each disk series into 1.2MB disks. This leaves a little extra room for the Dat file. The way I divide my disks is to create a directory for each series (BASE, EDIT, ..), then create a disk-number directory under each of those (BASE\1, BASE\2, ...) and to put all the zip files for a particular disk into the correct directory path. (8) Create Dat files for each disk in the disk series for the distribution. Since you've put all the zip files for the, say, "Base 1" disk into a BASE\1 directory, you just need to change to the BASE\1 directory, and do this: DIR *.ZIP > BASE.1 (9) Edit the Dat files, and replace ".ZIP" with ": Y". You might want to change the "Y" to "?" for any optional packages. I have chosen to make the FreeDOS kernel optional, for example, so that people are sure to read the package description before they install it. I think this reduces questions about bugs and such. (10) On the last disk in each series, create an End file. For the "Base" disk series, the last disk should have a BASE.END file. -------------------------------------------------------------------- FOR THE BETA 3 (OR LATER) DISTRIBUTIONS: This should be much easier than building the Beta 1 or Beta 2 releases. It will at least require less download time. (1) Again, you'll need a printed copy of the maintainers lists, which shows the programs that are distributed with FreeDOS. (2) It might also help to have a list of program name and version number that was included in the last distribution. You can be clever and use AWK or some other report tool to print a two-column list of name and version, using the rph files from the last distribution as the source. I won't show you the AWK script, because I haven't written it yet, but I think you'll agree it's pretty easy to write. (3) Cross off from the maintainers list all the packages that have _not_ changed since the last release. (4) Copy all the packages that you just crossed off to the new distribution. (5) Download only the programs that have changed, or any that are new since the last distribution. You can use your old rph files as a reference if you don't know where you got them - remember that hte rph file includes the url to get the program. (6) Create exe and source packages from the downloaded zip files for each program. (7) Update the rph files for each updated or new package. (8) Divide the packages into disk series. (9) Divide each series into disks. (10) Create the Dat and End files for each disk/series. -------------------------------------------------------------------- Copyright (C) 1998 Jim Hall, jhall1@isd.net Unless otherwise stated, FD-DOC HOWTO documents are copyrighted by their respective authors. FD-DOC HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions. All translations, derivative works, or aggregate works incorporating any FD-DOC HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the FD-DOC HOWTO coordinator at the address given below. In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs. If you have any questions, please contact the FD-DOC coordinator at jhall1@isd.net.